import axios from 'axios'

// 创建上传专用的axios实例
const uploadInstance = axios.create({
  baseURL: 'http://localhost:5203/api',
  timeout: 30000,
  headers: {
    'Content-Type': 'multipart/form-data'
  }
})

// 响应拦截器
uploadInstance.interceptors.response.use(
  response => {
    const res = response.data
    if (res.code === 'Success' || res.code === 200 || res.code === 0) {
      // 确保图片URL路径正确
      if (res.data && res.data.url) {
        // 如果返回的URL不是完整的URL，添加基础路径
        if (!res.data.url.startsWith('http://') && !res.data.url.startsWith('https://')) {
          res.data.url = `http://localhost:5203${res.data.url}`
        }
      }
      return res
    }
    return Promise.reject(new Error(res.message || '上传失败'))
  },
  error => {
    console.error('上传请求失败:', error)
    return Promise.reject(error)
  }
)

// 文件上传API
export const uploadApi = {
  // 上传图片
  uploadImage(file) {
    const formData = new FormData()
    formData.append('file', file)
    
    // 添加调试日志
    console.log('开始上传图片:', file.name, '大小:', Math.round(file.size / 1024), 'KB')
    
    return uploadInstance.post('/FileUpload/image', formData)
      .then(response => {
        console.log('上传图片成功，完整响应:', response)
        
        // 如果URL不是完整路径，添加域名
        if (response.data && response.data.url && 
            !response.data.url.startsWith('http://') && 
            !response.data.url.startsWith('https://')) {
          response.data.url = `http://localhost:5203${response.data.url.startsWith('/') ? '' : '/'}${response.data.url}`
          console.log('修正后的图片URL:', response.data.url)
        }
        
        return response
      })
      .catch(error => {
        console.error('上传图片失败:', error)
        throw error
      })
  },
  
  // 删除图片
  deleteImage(fileName) {
    return uploadInstance.delete(`/FileUpload/image/${fileName}`)
  }
}

export default uploadApi 